// 全局作用域
let a = 11
let b = 22

// 局部作用域
function f(){
    // console.log(a)  报错
    let a = 1

    // 局部作用域
    function g(){
        a = 2
        console.log(a) // 2
    }

    console.log(a) // 1
    g()
    console.log(a) // 2
}
f()

/**
 * 作用域链：嵌套关系的作用域串联起来
 * 作用：底层的变量查找机制（就近原则）
 * 1.在函数被执行时，会优先查找当前函数作用域中的变量
 * 2.如果当前作用域中找不到，就会逐级向上查找父级作用域知道全局作用域
 * 3.子作用域能够访问父作用域，父级作用域无法访问自己作用域
 */